package com.sdcx.agrobank.mvp.presenter;

import com.sdcx.agrobank.base.BaseContrat;
import com.sdcx.agrobank.mvp.model.IBackModel;
import com.sdcx.agrobank.mvp.model.Model;


import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;

public interface IContrat {
    abstract class IPresenter extends BaseContrat.BasePresenter<IModel,IView>{
        @Override
        public IModel getModel() {
            return new Model();
        }
        public abstract void post(Map<String, Object> map, List<MultipartBody.Part> list, Class aClass);

        public abstract void get(Map<String, Object> map, Class aClass);

        public abstract void put(String url, Map<String, Object> map, Class aClass);

        public abstract void delete(String url, Map<String, Object> map, Class aClass);

        public abstract void postget( Map<String, Object> map, Class aClass);
    }

    interface IModel extends BaseContrat.IBaseModel {
        void post( Map<String, Object> map,List<MultipartBody.Part> list, Class aClass, IBackModel iBackModel);

        void get(String url, Map<String, Object> map, Class aClass, IBackModel iBackModel);

        void put(String url, Map<String, Object> map, Class aClass, IBackModel iBackModel);

        void delete(String url, Map<String, Object> map, Class aClass, IBackModel iBackModel);

        void postget( Map<String, Object> map, Class aClass, IBackModel iBackModel);
    }

    interface IView extends BaseContrat.IBaseView {
    }
}
